package com.xmjs.baselibrary.utils;

import android.app.Activity;
import android.content.Context;

import com.tencent.bugly.Bugly;
import com.tencent.bugly.beta.Beta;

/**
 * Bugly配置工具类：
 * 版本升级、错误日志收集
 */
public class BuglyUtils {

    /**
     * 注意事项：
     * 需要在AndroidManifest.xml中，添加如下申明：
     <!-- Bugly升级提示页 -->
     <activity
     android:name="com.tencent.bugly.beta.ui.BetaActivity"
     android:configChanges="orientation|keyboardHidden|screenSize"
     android:screenOrientation="portrait"
     android:theme="@android:style/Theme.Translucent" />
     **/

    /**
     * 初始化Bugly，建议放在Application中
     *
     * @param context            上下文
     * @param appId              应用对应的 bugly appId
     * @param logoIconId         logo图片的id
     */
    public static void initDefault(Context context, String appId, int logoIconId) {
        //启动自动初始化升级模块（如果担心sdk初始化影响app启动速度，可以设置为false，
        //在后面某个时刻手动调用Beta.init(getApplicationContext(), false)）
        Beta.autoInit = true;

        //初始化时自动检测升级
        Beta.autoCheckUpgrade = true;

        //设置升级检查周期为5分钟
        Beta.upgradeCheckPeriod = 5 * 60 * 1000;

        //设置启动延时为2s（默认为3s），避免影响app启动速度
        Beta.initDelay = 2 * 1000;

        //设置通知栏大图标
        Beta.largeIconId = logoIconId;

        //设置通知栏小图标
        Beta.smallIconId = logoIconId;

        //设置更新弹窗默认展示的banner
        Beta.defaultBannerId = logoIconId;

        //设置Wifi下不自动下载
        Beta.autoDownloadOnWifi = false;

        //设置不显示消息通知
        Beta.enableNotification = false;

        //初始化统一接口
        Bugly.init(context.getApplicationContext(), appId, false);
    }

    /**
     * 设置允许显示更新弹窗的Activitie
     *
     * @param canShowUpgradeActs
     */
    public static void setCanShowUpgradeActivitys(Class<? extends Activity>... canShowUpgradeActs) {
        if (canShowUpgradeActs.length > 0)
            for (int i = 0; i < canShowUpgradeActs.length; i++) {
                Beta.canShowUpgradeActs.add(canShowUpgradeActs[i]);
            }
    }

    /**
     * 检测版本更新
     */
    public static void checkUpdate() {
        //参数1：是否需要用户手动点击检查，参数2：是否显示吐司提示
        Beta.checkUpgrade(false, false);
    }

}